;;; key.lisp

(in-package #:boxes/keymap/key)

(defun normalize-key (key)
  (etypecase key
    (stumpwm::key key)
    (string (stumpwm:kbd key))
    (character (stumpwm:kbd (string key)))))

(defmacro ensure-normalized-key (place)
  `(setf ,place (normalize-key ,place)))

(deftype key () 'stumpwm::key)

(defun key= (keybinding1 keybinding2)
  (check-type keybinding1 key)
  (check-type keybinding2 key)
  (equalp keybinding1 keybinding2))


